<?php
//Ultima verificacion: 13-10-2014 ; 21-11-2014 ; 20-02-2015
class M_docente extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener los docentes existentes
	function buscar(){
		$consulta = $this->db->query("SELECT persona.*, docente.idDocente, docente.trato, docente.colorDeFondo, docente.colorDeTexto, docente.estado AS estadoDocente,
											(SELECT nombre FROM tipodocumento WHERE tipodocumento.idTipoDocumento=persona.idTipoDocumento AND tipodocumento.estado<>-1 LIMIT 1) AS tipoDocumento,
											DATE_FORMAT(docente.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(docente.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM persona, docente
									  WHERE persona.idPersona=docente.idPersona AND 
											persona.estado=1 AND 
											docente.estado<>-1
									  ORDER BY persona.apellido ASC, persona.nombre ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando queremos obtener los docentes activos
	function buscarActivos(){
		$consulta = $this->db->query("SELECT persona.*, docente.idDocente, docente.trato, docente.colorDeFondo, docente.colorDeTexto, docente.estado AS estadoDocente,
											(SELECT nombre FROM tipodocumento WHERE tipodocumento.idTipoDocumento=persona.idTipoDocumento AND tipodocumento.estado<>-1 LIMIT 1) AS tipoDocumento,
											DATE_FORMAT(docente.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(docente.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM persona, docente
									  WHERE persona.idPersona=docente.idPersona AND 
											persona.estado=1 AND 
											docente.estado=1
									  ORDER BY persona.apellido ASC, persona.nombre ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza para eliminar un docente
	function eliminar($idDocente=null, $idDestructor=null){
		$consulta = $this->db->query("UPDATE `docente`
									 SET `estado` = -1,
										 `idDestructor` = ". $this->db->escape($idDestructor) ."
							         WHERE `docente`.`idDocente` = " . $this->db->escape($idDocente) . " LIMIT 1");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para crear un docente
	function crear($idPersona=null, $trato=null, $colorDeFondo=null, $colorDeTexto=null, $fechaIngreso=null, $idArchivoCurriculum=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `docente` (`idDocente`,`idPersona`,`trato`,`colorDeFondo`,`colorDeTexto`,`fechaIngreso`,`idArchivoCurriculum`,`estado`, `fechaCreacion`, `idCreador`) VALUES 
												(NULL,".$this->db->escape($idPersona).",".$this->db->escape($trato).",".$this->db->escape($colorDeFondo).",".$this->db->escape($colorDeTexto).",".$this->db->escape($fechaIngreso).",".$this->db->escape($idArchivoCurriculum).",".$this->db->escape($estado).",now(),".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza en el formulario para modificar un docente.
	function get($idDocente=null){
		$consulta = $this->db->query("SELECT docente.*, persona.apellido, persona.nombre, 
											DATE_FORMAT(docente.fechaIngreso,'%d-%m-%Y') AS fechaIngresoFormateada,
											DATE_FORMAT(docente.fechaIngreso,'%d/%m/%Y') AS fechaIngresoFormateada2
									  FROM docente, persona
									  WHERE docente.idPersona=persona.idPersona AND 
											docente.estado<>-1 AND 
											persona.estado<>-1 AND 
											docente.idDocente=".$this->db->escape($idDocente)."
									  LIMIT 1");
		return($consulta);
	}
	
	//Este metodo se utiliza en el formulario para modificar un docente.
	function get2($idPersona=null){
		$consulta = $this->db->query("SELECT docente.*,
											(SELECT hash FROM archivo WHERE archivo.idArchivo=docente.idArchivoCurriculum LIMIT 1) AS hashArchivoCurriculum, 
											DATE_FORMAT(docente.fechaIngreso,'%d-%m-%Y') AS fechaIngresoFormateada,
											DATE_FORMAT(docente.fechaIngreso,'%d/%m/%Y') AS fechaIngresoFormateada2
									  FROM docente, persona
									  WHERE docente.idPersona=persona.idPersona AND 
											docente.estado<>-1 AND 
											persona.estado<>-1 AND 
											docente.idPersona=".$this->db->escape($idPersona)."
									  LIMIT 1");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando el usuario docente inicia sesion.
	function getActivo($idPersona=null){
		$consulta = $this->db->query("SELECT docente.*, 
											(SELECT hash FROM archivo WHERE archivo.idArchivo=docente.idArchivoCurriculum LIMIT 1) AS hashArchivoCurriculum, 
											DATE_FORMAT(docente.fechaIngreso,'%d-%m-%Y') AS fechaIngresoFormateada,
											DATE_FORMAT(docente.fechaIngreso,'%d/%m/%Y') AS fechaIngresoFormateada2
									  FROM docente, persona
									  WHERE docente.idPersona=persona.idPersona AND 
											docente.estado=1 AND 
											persona.estado=1 AND 
											docente.idPersona=".$this->db->escape($idPersona)."
									  LIMIT 1");
		return($consulta);
	}
	
	//Este metodo se utiliza para modificar un docente
	function modificar($idDocente=null, $trato=null, $colorDeFondo=null, $colorDeTexto=null, $fechaIngreso=null, $idArchivoCurriculum=null, $estado=null){
		$consulta = $this->db->query("UPDATE `docente` 
									 SET `trato` = ". $this->db->escape($trato) .",
										 `colorDeFondo` = ". $this->db->escape($colorDeFondo) .",
										 `colorDeTexto` = ". $this->db->escape($colorDeTexto) .",
										 `fechaIngreso` = ". $this->db->escape($fechaIngreso) .",
										 `idArchivoCurriculum` = ". $this->db->escape($idArchivoCurriculum) .",										 
										 `estado` = ". $this->db->escape($estado) ."
							         WHERE `docente`.`idDocente`=".$this->db->escape($idDocente)." LIMIT 1");
		return($this->db->affected_rows());
	}
}
?>